home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / sys / amiga / applications / 305 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  17.5 KB

  1. Path: news.mindspring.com!chmood
  2. From: chmood@photobooks.atdc.gatech.edu (Charlie Moody)
  3. Newsgroups: comp.sys.amiga.applications
  4. Subject: [FinalWriter] Design Considerations, Features, etc
  5. Date: 8 Jan 1996 16:02:35 GMT
  6. Organization: Photobooks Inc
  7. Message-ID: <4crf6r$18k@brickbat.mindspring.com>
  8. NNTP-Posting-Host: photobooks.atdc.gatech.edu
  9. X-Newsreader: TIN [version 1.2 PL2]
  10.  
  11. Here is the file I've mentioned.  It began as a letter to SoftWood, and I 
  12. haven't bothered to change it, stylistically.  It includes observations 
  13. and recommendations regarding FW design and implementation *beginning* w/ 
  14. 2.1, and carried thru 3.0.
  15.  
  16. I hope that both SoftWood and Digita read this, and I welcome comments.
  17.  
  18.  
  19. --------------------  snip  -------------------------  snip  ---------------
  20.  
  21.  FinalWriter release 2.1 / 3.0:   Request for Modifications and Enhancements
  22.  
  23.  
  24.  
  25. Let me begin this by thanking you for producing a text engine for the
  26. Amiga that is worthy of being improved.  Despite early frustrations,
  27. inadequate (tho attractive) documentation, and the ongoing confusion of
  28. trying to intuit your implementation of various features, my estimate of
  29. FW's value has gone up: especially since I received the 2.1 upgrade.  The
  30. addition of so simple a feature as the paragraph strip has dramatically
  31. increased FW ef- fectiveness for me (why do you call it a paragraph strip? 
  32. I think I'd call it a text strip.)
  33.  
  34.  
  35.  
  36. I've spent many hours compiling and refining the suggestions here, and in
  37. the process, I've arrived at a few fundamental criticisms of FW's
  38. operation and (in places) design.  As a retired software jock, I've found
  39. myself putting on my design hat in doing so.  I hope that you'll give
  40. serious consideration to my suggestions for enhancements, as I believe
  41. they can lift FW to the top rank of word processors regardless of
  42. platform. 
  43.  
  44.  
  45. My overall observations?  First, that FW is slow.  Opening at startup,
  46. opening a new window (opening "Untitled", then loading the chosen
  47. document), changing from one window to another, synchronous printing,
  48. changing from arrow-pointer to insertion-pointer ('][') - waiting for
  49. these is annoying and distracting. The culprit often seems to be multiple
  50. unnecessary screen redraws; surely you can easily check to see if a
  51. document uses custom palettes, strips, etc., and then draw the window
  52. accordingly, once!  (If each doc has its own prefs structure, this should
  53. be easy....)
  54.  
  55.  
  56. Program preferences and document defaults strike me as confusing,
  57. illogical and lacking in power & features.  Of all the areas I feel need
  58. improvement, this area of program and document control (and the
  59. opportunities to change these things that are scattered throughout the
  60. program) stands out as being in the greatest need. Accordingly, I'll
  61. discuss this area in some detail below. 
  62.  
  63.  
  64. It may be that making such changes as I propose here will require major
  65. design revision:  I certainly hope not;  and yet, such possibility exists
  66. in any project involving ongoing development, and there is no reason why
  67. FW3 couldn't set a new standard in w/p design & implementation.  I hope it
  68. will! 
  69.  
  70.  
  71.  
  72. BUGS
  73.  
  74. Menu selections only take effect if the pointer is showing the '][' image
  75. during the selection. Menu access should be enabled regardless of pointer
  76. type. As mentioned above, the time required for the pointer image to
  77. change is excessive:  please find a way to speed it up. 
  78.  
  79. Hyphenation:  terms, such as 'self-defense', which contain suppled
  80. hyphens, are not handled correctly. In the document I'm working with (in
  81. the other window), 'self-defense' is treated as one word, and it is bumped
  82. to the next line as a whole; attempting to defeat this by typing 'self-
  83. defense' (breaking it into two words) results in 'self- def' at the end of
  84. one line, and 'ense' at the beginning of the next. This should never
  85. happen!  Words containing supplied hyphens should break following the
  86. supplied hyphen. Strings containing slash characters ('/') should treat
  87. these as supplied hyphens, per above, for correctly breaking pathnames and
  88. other compound constructions. 
  89.  
  90. Top margins are not retained during final printing.  I've enclosed a
  91. sample page displaying this, encase you haven't seen it. 
  92.  
  93.  
  94.  
  95. SHORTCOMINGS THAT COULD ALMOST COUNT AS BUGS
  96.  
  97. A flashing cursor option should be available, as well as cursor color
  98. selection. 
  99.  
  100. FW will abort an Open-Document request if the user specifies a file name
  101. that doesn't exist in the selected drawer.  FW should create the file,
  102. then open it - not just bail out w/ a screen flash! 
  103.  
  104. ASCII files should be treated as ASCII ASCII files are automaticaaly
  105. converted to FW format.  This should be made explicit by requiring the
  106. user to import as, or export to, a FinalWriter file.  Similarly, exporting
  107. as ASCII should allow exported lines to wrap as one would expect, and
  108. avoid hard EOLs.  I wrote this file in FW 2.1 & FW 3.0, exported it to
  109. ASCII, and am adding this line during my cleaning-up of the file. 
  110.  
  111. Keyboard control for moving from word to word requires two hands:  this
  112. should be at least possible as a one-handed operation.  I recommend you
  113. swap control keys for this function w/ those now used for block selection: 
  114.  
  115.     shift-arrow      =    move word-to-word or paragraph-to-paragraph
  116.     ctrl-arrow       =    highlight characters / line fragments
  117.     ctrl-shift-arrow =    highlight words / whole lines
  118.  
  119. Draft-mode printing doesn't preserve general formatting attributes such as
  120. bolding, centering, italics, underlining, margins, etc.  As a result,
  121. draft copies can't be used to check and correct formatting
  122. inconsistencies. This drastically reduces the value of having a draft copy
  123. in the first place. Draft-mode printing should preserve all standard
  124. formatting attributes via the standard Amiga printer commands. 
  125.  
  126.  
  127.  
  128. ENHANCEMENTS and MODIFICATIONS
  129.  
  130. FW General
  131.  
  132.  
  133. Operational Defaults
  134.  
  135. Every task that can run asynchronously should do so:  printing, saving,
  136. the speller, and the thesaurus are all examples of tasks that should not
  137. disrupt or interrupt the users' work. 
  138.  
  139. FW still lacks any sort of default font list (other than SoftSans), as
  140. near as I can tell.  Such a list, which FW would use to 'load' the
  141. font-selection popup on the toolstrip, would be a terrifically useful &
  142. worthwhile feature, as would the ability to purge the open-fonts list. 
  143. Without such a list, the user must manually call up the
  144. Text/TypeStyle/Open requestor once for every font the user wants to choose
  145. from, select the font, and then do it again!  With a default fontlist, the
  146. user's preferred selections are available at start-up Also, the open-fonts
  147. list should be able to handle global font selections, not just local
  148. (document-specific) choices. 
  149.  
  150.  
  151.  
  152. DOCKING!
  153.  
  154. The ability to dock a given document or the entire program would be a
  155. terrific feature - a ToolMaster-style list of buttons, showing the titles
  156. of each open document, plus buttons for 'Open New' and 'Open Existing'; 
  157. clicking one of these buttons would open that document's window on FW's
  158. default screen.  If FW opens its own screen, the dock should pop up onto
  159. the FW screen when it opens, so that the working set of documents is still
  160. easily available.  This would simplify and streamline FW's behaviour and
  161. performance, greatly increase its convenience and ease of use, and could
  162. conserve memory as well. 
  163.  
  164. Along the lines of the default fontlist I mentioned earlier (not to
  165. mention a font dock!), a default docklist would be a great additional
  166. feature:  a list of docs that would be loaded into the FW Dock @ start-up.
  167. For example, if FW found a 'docklist.cfg', then it would open its dock on
  168. the Workbench, showing those documents.  The ability to create and change
  169. such lists, along with the ability to tell FW which list should be
  170. 'docklist.cfg', should also be provided.  This would be terrifically
  171. useful when working on several different projects, as many writers do
  172. (like me!). 
  173.  
  174. As an alternative to docking, the user should be able to choose either an
  175. AppIcon, or a 'tuck-away' icon of the title-bar or 'sleeping-program'
  176. type. 
  177.  
  178.  
  179. Backup Control
  180.  
  181. Generational backups (i.e., #?.BK1, .BK2, .BK3, etc.) should be
  182. implemented, at least as a selectable default option.  Sometimes it's
  183. highly desirable to return to an earlier stage in a project, and to be
  184. able to do so without resorting to tricky manual procedures. 
  185.  
  186. The auto-save feature should be completely automatic, once it has been
  187. selected by the user, without making further queries, and without
  188. requiring continual user input.  At the least, the user should be able to
  189. select either auto-mode or intervention-mode as a default. 
  190.  
  191. Note:  this *was* added in 3.0, but it was implemented as document-local,
  192. not global.  This is silly.  The feature is ALSO keyed to mouse movement,
  193. which is even sillier, as one can (& does) get a lot of typing done
  194. without using the mouse. 
  195.  
  196. The auto-save feature should save asynchronously, to avoid interrupting
  197. the user's work, and to eliminate the slow and annoying screen-redraw and
  198. pointer-lag that follows every save. 
  199.  
  200.  
  201. PREFERENCES and DEFAULTS
  202.  
  203. FW's preference and parameter 'scheme' may provide very powerful aids, but
  204. the way they are implemented creates unnecessary confusion. There seem to
  205. be too many ways to mess with standard parameters -lots of opportunity for
  206. users to get in their own way.  An actual prefs program or subsection
  207. would be a real boon. It should clearly indicate a configuration or
  208. preference hierarchy.  For example: 
  209.  
  210. PREFS:Program, Documents, Display, Misc.
  211.  
  212.       Program/Screen/Paths/General
  213.           Screen(DefaultScreen/Resolution, Colors, FlashingCursor?)
  214.           Paths(Docs/clips/speller/styles/fonts/macros/graphics/backups/
  215.             printer/arexx)
  216.           General(Dock/Iconify[AppIcon/'StickAway'Icon]),
  217.           DockList[New/Edit/SelectDefault], ForceARexxActive,
  218.           BackUpControl(AutoSave/Frequency/Prompt/Nr-of-Generations)
  219.           DefaultPrinterDriver
  220.  
  221.       Documents/Defaults/Filters/Text/General
  222.           Defaults(Document, Page[LeftMaster/RightMaster/Body],
  223.                Section/ByType/ByName/Paragraph/Styles/ToC/Index)
  224.           Filters(MaintainASCII[Always/Never/Ask])
  225.           Text(FontList[New/Edit/Default],TypeControl[Attributes/Styles]
  226.           General(Speller/Thesaurus/Hyphenation/Bibliography]
  227.  
  228.       Display/Windows/ButtonSets
  229.           Windows(Documents[Anchored/Floating]/Palettes[Anchored/Floating,
  230.               Snapshot[Sizes/Positions])
  231.           ButtonSets(Create/Edit[Sets/Images]/SelectStripSets[range],
  232.              SelectPaletteSets[range]/Show/Hide)
  233.  
  234. This example prefs layout is reasonably consistent with standard
  235. approaches to prefs selection, as well as being reasonably flexible,
  236. powerful, and consistent in its own right.  I think it is also more
  237. intuitive and more predictable than FW's preferences hierarchy as of 3.0. 
  238. I've taken the liberty of using it to show a number of options I'd very
  239. much like to see in FW. 
  240.  
  241. Here are some specific notes detailing the examples above (for detailed
  242. comments on handling document preferences and parameters, see the section
  243. on Documents, below): 
  244.  
  245. Graphics/Display:
  246.  
  247. Options should be meaningful, i.e.: screen resolution choices, rather than
  248. cryptic x/y dot counts or "Model T"-style screen selectors ('choose any
  249. screen, as long as it's this one').  Provision should be made to take
  250. advantage of graphics boards (including the ZII Retina, please!), making
  251. use of the speed, memory, and options that these cards present. 
  252.  
  253. Anchoring doc & palette windows:  This would prevent the 'floating
  254. palettes' from diving beneath the active window when using FW with
  255. window-activation commodities, and otherwise prevent the various windows
  256. from getting in each other's way. As a minimum, I suggest that users be
  257. allowed to choose Anchored (bottom-layer) documents and floating
  258. (top-layer) palettes as one option, and the reverse (floating docs &
  259. anchored palettes) as the alternative. 
  260.  
  261. The document window should collapse or expand to show the selected button
  262. strip(s);  currently it will display up to 3, which is fine. However,
  263. button strips and palettes should be mutually exclusive:  a button set can
  264. be one or the other (or unused) at any moment, but not both at once. 
  265. Also, restrictions on what can be displayed as a strip should be
  266. eliminated:  For example, I can have either the toolstrip or the paragraph
  267. strip, but not both (of course I want them both!);  also, I can have the
  268. button strip, or not, but I can't replace it with the toolstrip (of course
  269. I want to replace it with the toolstrip!). 
  270.  
  271. Also on the subject of button strips, etc.:  A graphic list of the
  272. supplied buttons and their default assignments (separate from the
  273. definition requester) would be wonderfully helpful in creating and editing
  274. strips & palettes.  I'm surprised that such a list isn't provided in the
  275. manual. 
  276.  
  277.  
  278.  
  279. DOCUMENTS
  280.  
  281.  
  282. Outlining
  283.  
  284. An outline processor similar to ThinkTank should be available, which could
  285. be used to outline a project simply & easily, and from which the full work
  286. could then be developed directly.  Your option to generate an outline 'ex
  287. post facto' may be useful, but I use outlines to *generate* documents.  I
  288. want outlining tools in FW so I can then expand the outline into the
  289. article in a single process.  I'd consider a well designed & implemented
  290. outliner worth upgrading for all by itself! 
  291.  
  292.  
  293. Printing
  294.  
  295. A printer-preferences selector (like your pop-up fontlist) would be a real
  296. boon to those of us who have & use more than one printer. 
  297.  
  298. A print-queue option:  the ability to select, order, and asynchronously
  299. print multiple documents as a single task, either to paper or to disk (one
  300. file per document).  As mentioned above, ALL print jobs should run
  301. asynchronously - else what's multi-tasking for? 
  302.  
  303. Section access in a document should be more direct.  The paragraph strip
  304. is a perfect place for a pop-up offering an alphabetized list of the
  305. sections in the current document, showing the current section, and
  306. providing one-click access to any section.  I would certainly use this
  307. feature much more often than I'll use the capitalization popup, or the
  308. sub/super script popup. 
  309.  
  310.  
  311. Parameter Modification
  312.  
  313. A clear precedence should be established to show the chain of effect that
  314. modifications create.  For example:
  315.  
  316.    Default Document  uses the default section, page, paragraph, and fontlist
  317.    Default Section   uses the default master and body pages
  318.    Default Page uses the default paragraph
  319.    Default Paragraph is the default paragraph style, uses the default typestyle
  320.    Default Typestyle
  321.  
  322. Each set of default parameters should be accessible only from the
  323. preferences. Any modifications not saved should be document-local. 
  324.  
  325.  
  326. Document-local parameter modifications should be linear in presentation,
  327. as well as local in effect.  Example: 
  328.  
  329. Document:  [options] - modify anything not handled by the other panels
  330.        [section] - modify the document's current section
  331.        [page]    - change page param's for the entire document
  332.        [type]    - set/change typeface/typestyle for entire document
  333.               (this might help overcome the problem of pasted text
  334.                changing typeface/style/font/whatever)
  335.  
  336. Section:   [options]   - manipulate the current section
  337.        [page]      - modify the current page for the section only
  338.        [paragraph] - modify the paragraph style for the section only
  339.  
  340. Page:       [options] - manipulate the document's current page
  341.  
  342. There should be no interlinking between these, or the hierarchy is broken
  343. and the changes become unpredictable.  If the top level was a popup on a
  344. strip, and the options presented panels as described, I think it would
  345. greatly help the user to keep its bearing and wits about it while slogging
  346. through a document. In FW, I continually find myself thinking I've set an
  347. option, then discovering that I hadn't set the right thing, or that I'd
  348. set it in the wrong place, such as trying to set something globally but
  349. only affecting the document, or making a change in the doc & discovering
  350. I've changed the program defaults. 
  351.  
  352. Maybe this will get the point across:  all settings should be
  353. document-local unless the program defaults are changed explicitly!!! 
  354.  
  355. ALL font and type modifications should be localized, as with the prefs,
  356. and should be on a panel, rather than forcing the user to wade through
  357. repetitive menu selections that require going in, changing one thing,
  358. going back in to change another, etc. Text styles should be created as a
  359. specific option of this standard control panel. 
  360.  
  361. As above, paragraph parameter modification should be localized, and styles
  362. created (and textstyles assigned) as a specific selection from the one
  363. standard control panel. 
  364.  
  365. Page- and section-parameter modification should adhere to this same rule,
  366. with the shared exception of permitting the user to toggle back and forth
  367. between master- and body-page option selectors (or between sections) while
  368. still in modification mode. 
  369.  
  370. Page styles (i.e. columnar styles, survey/questionnaire styles, outline
  371. styles, correspondence styles) or templates could be implemented
  372. compatibly w/ other styles (perhaps even document styles such as FW,
  373. ASCII, PostScript). 
  374.  
  375. Default master pages for each section should be available as well as a
  376. default body page. 
  377.  
  378. I'd like FW to have the ability to find and start arexx if arexx is
  379. inactive @ start-up. 
  380.  
  381. I'd like to see FW's documentation approach the standard of detail and
  382. thoroughness set by Soft-Logik for their PageStream 3. For example, what
  383. little information the FW manual presents on headers and footers is spread
  384. throughout the manual in repetitive bits;  I would like to see this, and
  385. other topics, covered thoroughly and once. 
  386.  
  387.  
  388.  
  389. Thanks for your attention to my suggestions.  I've spec'd, designed, and
  390. coded software myself, and written documentation, and done my time on the
  391. tech support phones, so I hope you'll forgive me if you feel there's too
  392. much detail;  I believe these changes are basic and reasonable, and will
  393. add substantially to FinalWriter's usability, friendliness, and value. 
  394.  
  395.